#pragma once

#include "Render/Shader/GlobalShader.h"

class LocalVertexShader : public RHIShader
{
	DECLARE_SHADER_BEGIN(LocalVertexShader)

	DECLARE_SHADER_END()
};

class LocalFragmentShader : public RHIShader
{
	DECLARE_SHADER_BEGIN(LocalFragmentShader)

	DECLARE_SHADER_END()
};

class PbrTextureVertexShader : public RHIShader
{
	DECLARE_SHADER_BEGIN(PbrTextureVertexShader)

	DECLARE_SHADER_END()
};

class PbrTextureFragmentShader : public RHIShader
{
	DECLARE_SHADER_BEGIN(PbrTextureFragmentShader)

	DECLARE_SHADER_END()
};

class HdrVertexShader : public RHIShader
{
	DECLARE_SHADER_BEGIN(HdrVertexShader)

	DECLARE_SHADER_END()
};

class HdrFragmentShader : public RHIShader
{
	DECLARE_SHADER_BEGIN(HdrFragmentShader)

	DECLARE_SHADER_END()
};

class GenBrbflutVertexShader : public RHIShader
{
	DECLARE_SHADER_BEGIN(GenBrbflutVertexShader)

	DECLARE_SHADER_END()
};

class GenBrbflutFragmentShader : public RHIShader
{
	DECLARE_SHADER_BEGIN(GenBrbflutFragmentShader)

	DECLARE_SHADER_END()
};

class GenIrradianceHdrVertexShader : public RHIShader
{
	DECLARE_SHADER_BEGIN(GenIrradianceHdrVertexShader)

	DECLARE_SHADER_END()
};

class GenIrradianceHdrFragmentShader : public RHIShader
{
	DECLARE_SHADER_BEGIN(GenIrradianceHdrFragmentShader)

	DECLARE_SHADER_END()
};

class GenIrradianceCubemapVertexShader : public RHIShader
{
	DECLARE_SHADER_BEGIN(GenIrradianceCubemapVertexShader)

	DECLARE_SHADER_END()
};

class GenIrradianceCubemapFragmentShader : public RHIShader
{
	DECLARE_SHADER_BEGIN(GenIrradianceCubemapFragmentShader)

	DECLARE_SHADER_END()
};

class GenIrradianceVertexShader : public RHIShader
{
	DECLARE_SHADER_BEGIN(GenIrradianceVertexShader)

	DECLARE_SHADER_END()
};

class GenIrradianceFragmentShader : public RHIShader
{
	DECLARE_SHADER_BEGIN(GenIrradianceFragmentShader)

	PUSH_CONSTANT_OFFSET(sizeof(glm::mat4));

	DECLARE_SHADER_END()
};

class GenPrefilterenvmapFragmentShader : public RHIShader
{
	DECLARE_SHADER_BEGIN(GenPrefilterenvmapFragmentShader)

	PUSH_CONSTANT_OFFSET(sizeof(glm::mat4));

	DECLARE_SHADER_END()
};

